package mapelements.foreground;

import java.awt.Polygon;

import mapelements.Renderer;



/**
 * rappresenta un MapLayer. Vedere la documentazione su circa cosa e' un
 * MapLayer
 * 
 * @author Koldar
 * @version 1.1
 */
// TODO fare una documentazione decente!
public class MapLayer<RENDERER extends Renderer> extends Foreground<RENDERER> {

	private static final long serialVersionUID = -658526623915524853L;

	// FIXME possiamo implementare la funzione "removePoint" estendendo Polygon
	// e usando invalidate(). Tanto alla fine bisognerà estenderlo: in certe
	// mappe si vorrà modificare la forma del poligono ;)

	public MapLayer(RENDERER _renderer) {
		this(_renderer,null);
	}

	/**costruisce il nuovo MapLayer senza una forma predefinita
	 * 
	 */
	protected MapLayer() {
		this(null,null);
	}

	/**
	 * costruisce il nuovo MapLayer con una certa forma
	 * 
	 * @param _shape
	 *            la forma del MapLayer
	 */
	protected MapLayer(RENDERER _renderer,Polygon _shape) {
		super(_renderer,_shape);
	}

	/**
	 * @return the shape. For further information visit {@link #shape}
	 */
	public Polygon getShape() {
		return (Polygon) shape;
	}

	/**
	 * @param shape
	 *            the shape to set
	 */
	public void setShape(Polygon shape) {
		this.shape = shape;
	}

}
